// rust 不支持++, --
fn test() {
    let arr = [1, 2, 8, 45];
    for i in 0..3 {
        println!("{}:", arr[i])
    }

    #[derive(Debug)] //必须加上这个
    struct Obj {
        name: String,
        age: i8,
    }

    // impl Obj {
    //     fn console() {
    //         println!("{:?}", obj)
    //     }
    //     fn init(&self) {
    //         self.age * 2
    //     }
    // }

    let obj = Obj {
        name: String::from("hello"),
        age: 18,
    };

    println!("{:?}", obj);
    // println!("1{}", Obj::console());
    // println!("3{}", obj.init())
}

fn main() {
    let a = 3;
    println!("{}", &a);
    println!("{0},{1}", &a, a);
    println!("Hello, world!");
    // 基本用法

    let arr = [2; 3];
    // let arr = [2, 3];
    println!("{:?}", arr);

    let sruct = {
        let x = 1;
        x + 1 // 这里没有分号, 表达式中无法使用return
    };
    println!("{}", sruct);
    // 与python一样使用if做三元表达式
    let three = if a > 2 { true } else { false };
    println!("{}", three);

    // rust 同样不存在for循环, 使用while代替
    let mut circulation = 1;
    while circulation <= 3 {
        //不用加()
        println!("{}", circulation);
        circulation += 1
    }

    for i in arr.iter() {
        // 还有loop循环
        println!("a={}", i);
    }

    test();
}
